前言
當我們談到資安策略,通常會提到藍隊、紅隊。藍隊是企業的防禦方,專注於阻止攻擊;紅隊則模擬真實攻擊者,進行積極的滲透測試。而紫隊則是藍隊和紅隊的結合,旨在進行資安策略的評估和提高,充當橋樑,促使兩方更好的合作。
而在上一篇我們提到藍隊的三大利器對應攻擊、防禦、管理是情資、設備與規範,在本篇針對資安設備的原理與分析方式展開來介紹。
基礎知識
談及資安設備之前有幾個知識需要先了解:
網路概念
因為許多資安設備是部署在網路上,因此要些知道網路的概念如協定、TCP/IP與網路的設備路由器、Switch。
網路知識
- 協定:網路上兩個或多個設備之間溝通的規則與標準。
- TCP/IP:網路中的核心協定族群
- TCP(Transmission Control Protocol)
- IP(Internet Protocol)
網路設備
建立、管理、傳輸和接收網路資料(封包)的硬體設備,包含路由器、交換機、防火牆等。
-
路由器:會將網路封包從一個網路轉發到另一個網路,也會根據封包內部的目標 IP address 決定最佳的路徑並且進行傳輸。
-
NAT (Network Address Translation)
- 用來轉換 IP 地址,在企業或一班的內部網路,可能有很多台設備(手機、電腦、其他機器)
- NAT 可以協助透過同一個公開 IP 地址存取外部網路
- 因為 NAT 因此外部網路無法直接存取內部網路的 IP。
-
DHCP (Dynamic Host Configuration Protocol)
- 協定,自動將網路中的設備分配各自的 IP address。
- DHCP 使得網路管理更方便,因為網管不需要一台一台手動的設定 IP,並確保每一個設備都有不同且唯一的 IP address。
-
Switch:網路設備,用於連接多台電腦、印表機和其他設備連到同一個區域網路(LAN)。
作業系統
不同作業系統可能有不同的攻擊手法,而資安設備也會針對不同的作業系統進行調整與設定。
log
Log
(日誌)是系統或是應用程式記錄的列表,會以發生的時間順序進行排列。
日誌用於記錄某些事情的發生了什麼,比如系統的事件(什麼時候電腦重新開機)、應用程式使用者行為(誰新增、誰刪除、誰修改)。
日誌的主要目的
-
故障診斷:當系統或應用程式出現問題時,日誌提供時間點,幫助網管人員或開發者找出問題所在。
-
安全監控:日誌因為可以記錄所有試圖存取系統的嘗試,無論是成功還是失敗,因此這個特性有助於偵測不當或未授權的活動。
-
效能分析:透過分析日誌,管理員可以了解系統或應用程式的效能問題所在,並進行對應的調整。
-
記錄保留:對於需要符合特定法規或政策的企業,保存日誌可能是強制性的,比如需要保存六個月。
日誌的資訊
- 事件的日期和時間
- 事件的來源(哪一個使用者/IP/哪一個系統元件)。
- 事件的類型或描述(發生了什麼事情)
- 有關該事件的其他詳細資訊
舉例來說,一個網站伺服器的日誌可能記錄以下資訊:
[2023-09-22 14:23:45] IP 192.168.1.10 accessed /index.html
[2023-09-22 14:23:50] IP 192.168.1.10 logged in as user "Alice"
[2023-09-22 14:24:01] IP 192.168.1.11 attempted to access restricted page /admin
以上面的日誌為例
- 可以追蹤特定使用者做了什麼事情
- 是否登入失敗太多次
什麼是資安設備
資安設備是軟體工具或硬體設備,目的是協助企業保護資訊、資料,減少未經授權的存取、破壞、竊取。
藍隊使用資安設備,包含但不限於防火牆、入侵檢測系統(IDS)、入侵防護系統(IPS)、端點檢測和回應(EDR)解決方案等來保護其網路和資料。
這些設備的功能除了阻止攻擊,有些還包括檢測、回應和恢復。
其他的設備還有網路分析工具、加密工具、身份驗證系統、VPN 等。
一般人使用資安設備用來保護自己與資訊,比如
- 使用防火牆針對不安全的流量,禁止進出網路。
- 使用 VPN 連到安全網路或保護傳輸過程。
- 使用防毒軟體來移除或隔離病毒。
- 使用多因素認證設備,登入除了密碼還多了人臉辨識或指紋辨識或 Email 或簡訊,確保不是其他人登入。
有趣的是有些資安設備還會有漏洞,導致可以直接攻擊資安設備,讓駭客可以往後續進下一步的攻擊。
為什麼企業需要資安設備
許多資安設備是為了解決一些藍隊無法解決,或是對藍隊來說很麻煩的事情。
問題:大量的日誌-SIEM
比如大量的日誌和事件:當一家大型公司有數千台伺服器、設備和應用程式時,這些系統每天都會生成超級多的日誌。
這些日誌需要有人去解讀是否有包含異常的行為或發生資安事件。
但因為 Log 太多導致很難去判別,因此才會發明資安設備,如安全資訊和事件管理(SIEM)系統,可以自動收集、整合和分析這些日誌,從中識別出可能的安全威脅。
問題:如何即時反應發生資安事件
系統要偵測到異常或攻擊,需要即時處理,來禁止。
- 如何偵測
- 如何知道是異常
- 誰來處理
- 怎麼禁止
資安設備的原理與情境分析
針對如何偵測,從前幾篇我們提到 nmap 可以進行掃描內容,掃描的過程當中會有許多網路流量,因此許多資安設備是透過「網路流量」來偵測與分析是否是異常活動。
但除了網路流量之外,還有許多分析的方法,以下是常見的設備原理:
- 日誌分析,來自不同設備的日誌
- 網路流量分析,找到惡意行為與異常行為
- 已知的惡意檔案的 hash、已知的惡意 IP ==> IOC
- 行為分析,根據正常的網路與使用者行為,建立一個正常的行為模型,假設此時行為偏離該模型,則發出警告
- Sandbox 直接將惡意檔案放在沙箱之內確認行為是否惡意
- 網路內容過濾,尋找關鍵字等過濾方式
- 端點保護,在電腦中安裝 agent 直接確認是否有惡意軟體、行為監控
惡意攻擊情境與藍隊防護說明與管理方針
在本次的情境設計中,我們加入紅隊常用的攻擊方式,再針對這種攻擊方式去識別與分析,最後提高防禦能力,並制定管理方針。
本情境僅供參考,以下分析四個情境
- 暴力破解攻擊
- 惡意掃描攻擊
- Command and Control (C&C) 連線
- 惡意檔案上傳或任意下載
暴力破解攻擊
事前說明
- 假設今天網路流量發現有大量的連線嘗試到某一特定端口,有機會是暴力破解攻擊。
- 例如,如果有大量來自外部 IP address 試圖 SSH 連接到一個伺服器,猜測是暴力破解的嘗試。
- 情境:假設你的企業內部有一些 Linux 的伺服器開啟了 SSH
紅隊
紅隊針對 SSH 攻擊,鎖定特地的 IP 並且使用 Hydra
hydra -l <帳號> -P <密碼字典檔> -t 6 ssh://<IP>
藍隊
- 先查看 log
cat /var/log/auth.log | grep sshd
cat /var/log/secure | grep sshd
- 嘗試利用 journalctl 確認 log
journalctl -u sshd
journalctl -u sshd | grep 'Failed password'
- 使用工具 logwatch 解析 /var/log 的報告
sudo apt install logwatch
- 限制嘗試次數和延遲回應
- SSH 密鑰(id_rsa)進行身分驗證
- 改變 SSH 預設端口
- 使用 SSH 連線 IP 白名單
- 只允許已知和信任的 IP address 進行 SSH 連線
- 即時監控
- 使用如 Snort 或 Suricata 等入侵偵測系統(IDS)監控網路流量,捕獲異常模式
- 雙重驗證
- SSH 也可以開雙重驗證
- 即使攻擊者猜對了密碼,仍然無法登入
- 確認密碼安全度:
紫隊的作用
從以上的範例當中,紅隊只執行一個步驟:攻擊 ssh 的語法,但藍隊卻需要想更多的解決方法來處理這個弱點,而需要使用哪一個解決方法,可能就需要由紫隊人員來協調。
可以根據緩解和長久解決設定一個期限,來協助雙方可以互相確認何時可以修、何時可以繼續演練。
管理 SOP 與管理方針參考
解決完防禦方法之後,可以嘗試制定相關的管理 SOP,
比如系統中
- 移除不必要的服務,如用不到 SSH 可以關閉
- 更新 SSH 到最新的版本
- 只有哪一個白名單 IP 才可以存取特定的 SSH Server
- 確保所有系統與日誌都有集中儲存,並定期檢查異常。
也可以針對特定的協定進行管理方針
SSH資安管理方針
- 日誌管理: 系統和應用程式都應該要定期記錄並保存日誌,也要定期確認以偵測異常行為,不然發生資安事件無法確認內容與細節。
- 強制使用密鑰身分驗證: 禁止員工在 SSH 中使用密碼認證,設定只有密鑰才能進行認證。
- 定期更新 SSH 密鑰:要求員工至少每 6 個月更換其 SSH 密鑰。
- 限制外部存取:除非有需要用到,否則不允許外部 IP 直接存取內部 SSH 伺服器。
- 雙重認證: 為所有可以從外部存取的伺服器啟用雙重認證。
- 定期安全審查:每季度進行一次全面的安全審查,確保所有伺服器都遵循最佳實踐。
SSH baseline設定
- 日誌保存: 保存所有 SSH 相關的日誌至少 90 天。
- 登入嘗試限制:在 5 分鐘內 5 次登入失敗後,鎖定該 IP 60 分鐘。
- SSH版本:只允許 SSH-2。
- 不允許的方法:禁止空密碼、root登入。
- Port: 改變 SSH 預設的 22 端口至一非標準端口,如 2222。
- 加密:僅允許強加密演算法。
- 系統訊息:在每次成功登入後,發送一條訊息到管理員通知有人已登入。
惡意掃描攻擊
事前說明
- 在極短的時間內,從同一個IP 地址對多個伺服器或資源的大量請求,可能是惡意攻擊者正在進行掃描或下載資料。
- 情境:假設企業外部資產有網站
紅隊
- 主動掃描
- 可能會透過
nmap
, rustscan
來掃描大範圍的IP位址
- 用來尋找開放的端口和服務以利下一步的攻擊
- 資料爬搜
- 利用
wget
, curl
針對企業的目標網站進行爬搜
- 也可以使用
burpsuite
內建 history 也可以自動找到網站上來有哪一些連結尚未存取,但已經被寫在 API 或是連結中。
藍隊
- 流量監控
- 受害主機可以即時開啟
Wireshark
或 tcpdump
用來即時監控網路流量,識別異常的連線模式。
- 使用入侵偵測系統
- 利用
Snort
, Suricata
或其他 IDS 工具
- 偵測已知的掃描行為和攻擊模式
- 阻擋來源 IP
- 如果發現從某一個 IP 進行大量的請求封包,可以嘗試暫時將此 IP 列入黑名單
- 阻擋這個 IP 的請求
- 日誌分析
- 分析系統和應用程式的日誌,分析異常的請求模式
- 如短時間內的大量請求
管理方針
- 流量限制
- 設定 IP 存取的限制
- 如從同一IP在短時間內的請求數量,來減少 DoS 攻擊風險
- 即時警報
- 當系統偵測到異常連線模式時,應立即通知系統管理員或資安安全團隊。
- 日誌保存政策
- 定期安全審查
- 定期檢查和更新安全設定,確保它們仍然符合企業的安全要求。
- 培訓與教育
特定簽名的流量
紅隊
- 利用已知漏洞
- 常見工具如
Metasploit
進行已知軟體漏洞的利用
- 或是網路上 exploit detabase 的攻擊腳本
- 駭客嘗試模糊測試
- 常見工具如
AFL
或 Boofuzz
對軟體進行模糊測試
- 混淆攻擊流量
- 使用工具或技巧,如
Veil
或加密工具,以試圖隱藏或混淆攻擊流量,使其更難被偵測。
藍隊
- 使用入侵偵測系統 IDS 和入侵防禦系統 IPS
- 例如
Snort
, Suricata
, Bro
- 根據已知的攻擊特徵去偵測和阻止攻擊
- 日誌分析
- 利用如
ELK Stack
(Elasticsearch, Logstash, Kibana) 來分析和視覺化系統和應用的日誌,尋找異常模式。
- 沙箱分析
- 使用沙箱(如
Cuckoo Sandbox
)來執行和分析可疑檔案,尋找不尋常的行為
管理方針
- 定期更新資安設備
- 零時差攻擊保護
- 異常流量警報
- 定期進行資安審查和測試
- 持續的員工培訓
Command and Control (C&C) 連線
情境說明
許多惡意程式在感染受害系統之後會控制受害系統跟駭客的系統進行連線,但連線過程當中可能會被資安設備偵測與警報。
情境:假設駭客已經入侵系統
紅隊
- 建立 C&C 伺服器
- 使用
Cobalt Strike
, Metasploit
- 建立和管理 C&C 伺服器
- 傳說過程中進行混淆
- 使用域前生成 (DGA)、加密或隧道技術(如 Tor、DNS、HTTPS)來混淆 C&C 通訊
- 快速轉換 C&C 伺服器地址
- 使用合法的服務來偽裝 C&C 通訊
- 例如使用 Google Docs、Twitter、GitHub 或其他流行的雲端服務進行資料交換
藍隊
- 網路流量監控
- 使用工具如
Wireshark
, NetFlow
- 分析網路流量,尋找異常的通訊模式
- 使用專門的 C&C 通訊偵測工具
- 如
Snort
, Suricata
, 或其他 IDS/IPS 工具,依據已知的 C&C 簽名來進行偵測
- 沙箱分析
- 使用沙箱解決方案,例如
Cuckoo Sandbox
, 執行和分析可疑檔案,尋找 C&C 通訊的 IP
- 與威脅情報平台 (TIP) 交換資訊
- 使用威脅情報共享平台如
MISP
或 ThreatConnect
,與其他組織分享和取得最新的 C&C 伺服器資訊。
管理方針
- 即時警報系統
- 建立即時警報系統
- 確保在偵測到 C&C 封包
- 資安團隊能夠迅速採取行動
- 網路隔離策略
- 確認關鍵資產被隔離
- 降低由 C&C 通訊引起的風險
- 持續的資安教育
- 協作與情報共享
- 與業界、政府和其他相關的企業合作,共享和取得最新的威脅情報。
- 更新防火牆和其他網路防護設備
- 確保所有設備都設定了最新的安全規則和簽名
- 以偵測和阻止 C&C 通訊
惡意檔案上傳或任意下載
情境與說明
在企業內部的環境假設突然出現檔案大小非常大的檔案內容,或是突然有大量的下載,可以猜測可能有資料外洩的問題。
紅隊
- 使用隱密性較高的傳輸工具
- 如
SCP
, SFTP
, 或 Rclone
傳送檔案
- 資料壓縮和混淆
- 使用工具如
7zip
, gzip
或 UPX
壓縮資料
- 以減少傳輸大小和提高隱密性
- 資料分割
- 使用第三方平台
- 利用如 Dropbox、Google Drive 或其他雲端儲存平台進行檔案傳輸
- 隱藏在正常通訊中
- 在 HTTPS、DNS 或其他合法通訊協定中隱藏資料
藍隊
- 網路流量監控
- 一樣使用
Wireshark
, NetFlow
, 或其他網路監控工具
- 用來分析異常的上傳或下載的內容
- 使用 DLP (資料遺失預防) 工具
- 如
Symantec DLP
, McAfee Total Protection for DLP
- 用來監控和阻止不正常的檔案上傳或下載
- 沙箱分析
- 任何不明的或可疑的檔案都應在沙盒環境中執行
- 以確定其行為和性質
- 存取控制
- 限制使用者只能存取他們需要的資料
- 並避免不必要的檔案傳輸權限
管理方針
- 資料上傳和下載策略
- 制定明確的策略,限制和控制資料的上傳和下載,確保只有授權的人員可以進行此類活動。
- 教育與培訓
- 進行定期的資安教育和培訓,讓員工了解如何安全地上傳和下載檔案。
- 定期審核
- 定期審查和分析系統日誌,以確定是否有任何異常的檔案傳輸活動。
- 技術策略
- 購買新的或更新現有的 DLP 工具和解決方案,以增加對異常檔案傳輸的偵測能力。
常見的資安設備廠商
- Fortinet、Palo Alto、CrowdStrike Falcon、Windows Defender ATP 等為市場上的一些主要的資安設備和解決方案。
小結
本篇內容簡單介紹網路相關的基礎知識,也解釋為什麼許多設備都是使用 log 來進行分析,也分析了資安設備常見的原理。
在這篇文章的後面,我們設計了四個情境根據攻擊、防禦、管理的思路,陪大家了解應該如何學習這三大領域的內容。